Method and arrangement for font building

ABSTRACT

A method and system for font building by providing for the downloading of a subset of glyphs at a client device from a server. The subset can include one or more particular requested glyphs. The subset is accompanied by one or more further glyphs determined by selection criteria, which can include: frequency of use of the glyphs in a particular language; frequency of use of the glyphs by at least one client device; and relationships between particular glyphs.

FIELD OF THE INVENTION

This invention relates to the building of characters (e.g., for visualdisplay or printing) on an output medium of a device, involving the useof a font stored in a font file.

BACKGROUND OF THE INVENTION

In the field of this invention it is known that the display ofcharacters on an output medium of a device involves the use of a font,stored in a font file of some format, and comprising many glyphs eachrepresenting a character portion. If a required character glyph is notavailable to the device, an appropriate font file is typically obtained(e.g., via a network download). Such font files can be large, especiallywhere a character set includes a large number of characters (such as aChinese character font comprising in excess of 20,000 characters).

However, this approach has the disadvantage(s) that downloading suchfont files over a network can therefore be time consuming, and localstorage on a client device may not accommodate the entire font file.

Although it is known to download to a device only those subset(s) ofglyphs or metadata that the device requests, this only partly alleviatesthe problem, and it still requires further download(s) whenever a glyphis required that the device has not yet been requested.

A need therefore exists for a method and arrangement for font buildingwherein the abovementioned disadvantage(s) may be alleviated.

STATEMENT OF INVENTION

In accordance with a first aspect of the present invention there isprovided a method of font building as claimed in claim 1.

In accordance with a second aspect of the present invention there isprovided a method of operating a server for cooperating with a clientfor font building thereat as claimed in claim 2.

In accordance with a third aspect of the present invention there isprovided an arrangement for font building as claimed in claim 15.

In accordance with a second aspect of the present invention there isprovided an server arrangement for cooperating with a client for fontbuilding thereat as claimed in claim 16.

BRIEF DESCRIPTION OF THE DRAWINGS(S)

One method and arrangement for font building incorporating the presentinvention will now be described, by way of example only, with referenceto the accompanying drawing(s), in which:

FIG. 1 is a block schematic diagram of a system including a fontrendering computer for, inter alia, browsing the internet;

FIG. 2 is a block schematic diagram showing in greater detail part ofthe system of FIG. 1; and

FIG. 3 is a block flow diagram showing operation of a server in thesystem of FIG. 1 and FIG. 2.

DESCRIPTION OF PREFERRED EMBODIMENT(S)

Referring firstly to FIG. 1, a computer system 100, in which theinvention is used, is shown. In the system 100, a client computer 110(having a visual display screen 120 and local processor and memory 130)is linked to a server 140 (including controller 150 and memory 160) andto the internet 170. The client computer 110 displays on the screen 120characters that it generates internally (e.g., from within atext-processing application) or that it receives from the internet 170(e.g., browsing a web page containing text). The computer 110 typicallykeeps some fonts in its memory 120 for commonplace display, butparticularly (although not exclusively) when browsing a web page fromthe internet, it may encounter a need to display a character that itdoes not have in its memory.

In this event, the client 110 requests a download of a subset of fontglyphs (which may be significantly quicker than downloading an entirefont) from the server 140; the requested subset includes glyphs forcharacters that it needs to display but which are not presently in itsmemory 120. The server 140 provides to the client 110 the requestedsubset.

However, in addition to the requested subset the server 140 alsoprovides to the client one or more further glyphs that might be expectedto be of use to the client. The further glyph(s) sent from the server'smemory 160 to the client are determined by the server on the basis ofone or more selection criteria, as will be explained in greater detailbelow. In a preferred implementation, the subset of glyphs can beprovided in a standard format of font file (such as TrueType) which isincompletely or sparsely populated (i.e., glyphs are provided for only asubset of all characters accommodated within the font file).

For ease of use, the client 110 communicates with server 140 (sendingits request, and receiving the requested and further character glyphs)via commonplace HTTP (HyperText Transfer Protocol) rather than the fontserver using its own protocol, as is known, to provide data.

Glyphs are stored locally at the client device (in memory, e.g. in afont file), and new glyphs are added when received from the server.Additionally, in response to resource criteria at the client device(such as storage space constraints) glyphs can be removed from thestorage of the client device, with the removed glyphs determined byspecified criteria (such as those least frequently used).

Thus the server 140 sends more glyphs than the client 110 requests,based on a prediction of other glyphs that the client will need in thenear future. This scheme of sending slightly more glyphs than areimmediately required is an attempt to minimise the number of requeststhe client has to make, in order to reduce the overhead of makingrequests.

Referring now to FIG. 2, the server controller 150 includes a part 210for receiving a request from the client 110 for a subset of characterglyphs, a selection criteria determination part 220 for determiningwhich further glyph(s) should be further sent with the requested subset,and a retrieval and response part 230 for retrieving the necessaryglyphs from memory 160 and forming and sending them to the client 110 ina sparsely populated TrueType file format as mentioned above.

Referring now to FIG. 3, the server 140 can be undestood as followingthe process 300:

-   -   firstly (step 310), the server 140 receives from the client 110        a request for a subset of font character glyphs;    -   secondly (step 320), the server 140 sends to the client the        requested subset (retrieved from memory 160); and    -   thirdly (step 330), the server 140 sends to the client the        further glyph(s) (also retrieved from memory 160) derived from        the selection criteria.

The selection criteria algorithm for the prediction of which glyphs theclient will need soon may be based on the following:

-   -   frequency of use of the glyphs in a particular language (glyphs        with a greater or equal frequency than those requested may be        further sent; e.g., the character “e” is more commonly used in        English than “q”, so if the requested subset is all in English        then glyphs for the character “e” might be further sent if not        already requested);    -   frequency of use of the glyphs at the client device (for a glyph        already on the client device, a count will be kept of the number        of times that glyph has actually been used, and this data is        then used to help in the re-ordering of the additional glyphs        that can get sent to a client; e.g., if the glyph in question is        only used once and is currently in a group of glyphs that have a        high usage, it can be replaced in the group by a higher usage        glyph).    -   frequency of use of the glyphs by a group of client devices        similar to the client 110 (since the client 110 can be expected        to need such glyphs in the future if they are requested from the        server with the same or greater frequency by other similar        client devices);    -   relationships between particular glyphs (e.g., glyphs all        relating to a particular mathematical, medical or legal usage,        so that for example if the requested subset contains a Chinese        ideograph for a medical term character glyph then all similar        medical ideograph glyphs could further be sent if not already        requested);    -   glyphs most commonly used in the local language but shown by        ‘opaque data’ sent with the glyph request to be not present on        the client computer.

The ‘opaque data’ sent by the client with the request can also indicatewhich subsets of glyphs are present on the client, and also how ofteneach of these subsets are ‘hit’. That is, how often each subsetsuccessfully supplies a glyph for display on the client screen. This hitrate data is important to the server so that it can calculate over timewhich glyphs are most commonly displayed by the clients that it isserving.

The server tries to adapt to the needs of the clients it serves in twoways: 1) it adjusts the number of glyphs it sends together in each‘chunk’, to achieve an acceptable download time for the chunk (to avoidexcessive delay for the user); 2) it reorganises the chunks of glyphs iftheir request frequency changes over time (the chunks are reorganised sothat each chunk contains only the most requested/used glyphs; it is moreefficient, when determing which chunks to send with a requested glyph,to send glyphs that have a high request/usage count rather than thosethat have a low count; this gives a greater probability that the sentchunk will in fact contain glyphs that the client might need later on;it may be that over time glyph usage changes for whatever reason, and sothis will allow the server to change along with it).

It will be appreciated that the method for font building described abovemay be carried out in software running on one or more processors (notshown) in the server and if desired in the client device, and that thesoftware may be provided as a computer program element carried on anysuitable data carrier (also not shown) such as a magnetic or opticalcomputer disc.

It will be understood that the method and arrangement for font buildingdescribed above provides the advantage that it reduces the need forfont/glyph download.

1. A method of font building at a client computer system cooperatingwith a server computer system, the method comprising: requesting by theclient from the server a subset of glyphs from a font; providing to theclient by the server the requested subset of glyphs and providing atleast one further glyph determined by at least one selection criterionat the server.
 2. (canceled)
 3. The method of claim 1 wherein theselection criterion comprises: determining a frequency of use of glyphsin a predetermined language; and specifying the selection criterionresponsive to determining the frequency of use of glyphs in thepredetermined language.
 4. The method of claim 1 wherein the selectioncriterion comprises: determining a frequency of use of glyphs by atleast one client; and specifying the selection criterion responsive todetermining the frequency of use by the at least one client. 5.(canceled)
 6. The method of claim 1 wherein the selection criterioncomprises: identifying a predetermined relationship between the at leastone further glyph and at least one of the requested subset of glyphs;and specifying the selection criterion responsive to identifying thepredetermined relationship.
 7. The method of claim 1 wherein the step ofrequesting includes sending an indication of glyphs present at theclient.
 8. The method of claim 7 wherein the step of requesting includessending an indication of frequency of use at the client of at least oneof the glyphs present at the client.
 9. The method of claim 1 furthercomprising at the server adjusting for download time the number ofglyphs provided together to the client.
 10. The method of claim 1further comprising at the server reorganising groups of glyphs if theirrequest frequency changes over time.
 11. (canceled)
 12. (canceled) 13.The method of claim 1 wherein the step of providing comprises providinga font file of predetermined format which is sparsely populated with therequested subset and the at least one further glyph.
 14. (canceled) 15.An system for font building, comprising: a client computer system; aserver computer system; means for requesting by the client from theserver a subset of glyphs from a font; means for providing to the clientby the server the requested subset of glyphs and at least one furtherglyph determined by at least one selection criterion at the server. 16.(canceled)
 17. The system of claim 15 wherein the selection criterioncomprises: means for determining a frequency of use of glyphs in apredetermined language; and means for specifying the selection criterionresponsive to determining the frequency of glyphs in the predeterminedlanguage.
 18. The system of claim 15 wherein the selection criterioncomprises: means for determining a frequency of use of glyphs by atleast one client; and means for specifying the selection criterionresponsive to determining the frequency of use by the at least oneclient.
 19. (canceled)
 20. The system of claim 15 wherein the selectioncriterion comprises: means for identifying a predetermined relationshipbetween the at least one further glyph and at least one of the requestedsubset of glyphs; and means for specifying the selection criterionresponsive to identifying the predetermined relationship.
 21. The systemof claim 15 wherein the means for requesting includes means for sendingan indication of glyphs present at the client.
 22. The system of claim21 wherein the means for requesting includes means for sending anindication of frequency of use at the client of at least one of theglyphs present at the client.
 23. The system of claim 15 furthercomprising at the server means for adjusting for download time thenumber of glyphs provided together to the client.
 24. The system ofclaim 15 further comprising at the server means for reorganising groupsof glyphs if their request frequency changes over time.
 25. (canceled)26. (canceled)
 27. The system of claim 15 wherein the means forproviding comprises means for providing a font file of predeterminedformat which is sparsely populated with the requested subset and the atleast one further glyph.
 28. (canceled)
 29. A computer programcomprising computer readable program code means, on a computer usablemedium, for performing font building by a client computer systemcooperating with a server computer system comprising: instruction meansenabling the client to request from the server a subset of glyphs from afont; and instruction means enabling the server to provide to the clientthe requested subset of glyphs and at least one further glyph determinedby at least one selection criterion at the server.
 30. A method of fontbuilding by a server computer system cooperating with a client computersystem, the method comprising: receiving by the server a request fromthe client for a subset of glyphs from a font; providing by the serverto the client the requested subset of glyphs and at least one furtherglyph determined be at least one selection criterion at the server.31-52. (canceled)